616E - Sum of Remainders - CodeForces Solution


implementation math number theory *2200

Please click on ads to support us..

C++ Code:

#include <iostream>
#include <vector>
#include <unordered_map>
#include <string>
#include <map>
#include <string>
#include <algorithm>
#include <iomanip>
#include <set>
#include <unordered_set>
#include <deque>
#include <functional>
#include <queue>
#include <cmath>
#include <array>
#include <queue>

#define int long long
using namespace std;
vector<int> arr(1000);
int p = 1'000'000'007;
signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    int n, m, k;
    cin >> n >> m;
    int ans = 0, ans2 = 0;
    int el = 0;
    /*for (int i = 1; i <= m; i++) {
        ans2 += n % i;
    }*/
    for (int i = 2; i <= min(m, n - 1); i++) {
        int t = n % i;
        k = n / i;
        if (i + t / k <= min(m, n - 1)) {
            int a = (t + t % k);
            int b = (t / k + 1);
            if (a % 2 == 0) {
                a /= 2;
            }
            else {
                b /= 2;
            }
            ans += (a % p) * (b % p);
            i += t / k;
            el++;
        }
        else {
            int a = (t + (t - (min(m, n - 1) - i) * k));
            int b = ((min(m, n - 1) - i) + 1);
            if (a % 2 == 0) {
                a /= 2;
            }
            else {
                b /= 2;
            }
            ans += (a % p) * (b % p);
            i += t / k;
            el++;
        }
        ans %= p;
    }
    //cout << el << endl;
    if (m >= n) {
        ans += (n % p) * ((m - n) % p);
        ans %= p;
    }
    cout << ans;
    cin >> n;
    return 0;
}


Comments

Submit
0 Comments
More Questions

1537A - Arithmetic Array
1370A - Maximum GCD
149A - Business trip
34A - Reconnaissance 2
59A - Word
462B - Appleman and Card Game
1560C - Infinity Table
1605C - Dominant Character
1399A - Remove Smallest
208A - Dubstep
1581A - CQXYM Count Permutations
337A - Puzzles
495A - Digital Counter
796A - Buying A House
67A - Partial Teacher
116A - Tram
1472B - Fair Division
1281C - Cut and Paste
141A - Amusing Joke
112A - Petya and Strings
677A - Vanya and Fence
1621A - Stable Arrangement of Rooks
472A - Design Tutorial Learn from Math
1368A - C+=
450A - Jzzhu and Children
546A - Soldier and Bananas
32B - Borze
1651B - Prove Him Wrong
381A - Sereja and Dima
41A - Translation